iT邦幫忙

2024 iThome 鐵人賽

DAY 14
2

現在,我進行到 Step 4 飲食紀錄 的設置。
flow chart

在前面的步驟中,我已經設置了飲食紀錄提醒。現在我們要模擬使用者在收到提醒或正好用餐後,在 Line 裡記錄自己的飲食內容。

查詢食物的熱量和營養

當使用者用自然語言輸入飲食的內容後,我要讓 Bot 計算食物的成份。
為了達到更好的飲食控制效果,我認為使用者不僅要知道熱量,還要包含蛋白質、碳水化合物和脂肪的數據,這樣能幫助使用者更好地了解每項食物的成分,並確保飲食均衡、健康。

因此,我設計讓 Bot 回傳的格式為:
「你吃了__(食物名稱),熱量__大卡,蛋白質__克,碳水__克,油脂__克」。

在設定過程中,原本我計劃使用一個名為「food_calories」的 Plugin 來查詢食物的營養信息,但經過測試後發現它經常無法正常運作。
因此,我改為使用「google_search」的 Plugin ,讓 Bot 自動從網路搜尋所需資料,以更靈活地提供準確的熱量與營養資訊。

計算剩餘熱量

我認為很重要的一點是,使用者在知道自己的攝取後,還需要了解當天的剩餘熱量。這樣一來,他就可以調整下一餐的選擇,無論是品項還是份量
舉例來說,吃完午餐後發現碳水化合物攝取已超標,而蛋白質尚有餘量,那麼晚餐可以選擇雞肉沙拉來補充蛋白質,減少碳水攝取。

紀錄飲食內容

為了能提供完整的飲食回饋,我決定讓 Bot 使用 database 中的 "intake_record" 來記錄每次的飲食數據。這樣不僅可以確保每次紀錄都妥善保存,還能讓使用者方便地查看過往紀錄,避免因為只依賴對話歷史而導致數據遺失。
database_intake record

基於以上功能需求,我的 Prompt 設置如下

### 技能 5 : 紀錄與分析使用者的飲食
5.1 使用者會和你描述飲食內容,請進行分析後,依照以下格式回復使用者:
「你吃了___(食物名稱),熱量__大卡,蛋白質__克,碳水__克,油脂__克」。
並將內容記錄到 database 的 intake_record裡。

5.2 計算剩餘熱量和營養量
詢問使用者內容,這一餐的飲食都輸入完畢了嗎?
確認的話,請計算這一餐的總量:熱量__大卡,蛋白質__克,碳水__克,油脂__克
並計算 'intake_suggestion' 扣除總量後,剩餘多少熱量__大卡,蛋白質__克,碳水__克,油脂__克

成果展示

在畫面中,可以看到吃吃記帳順利地根據輸入計算出熱量和營養,並確認是否這一餐紀錄完畢。確定後,幫忙計算出剩餘的飲食額度。

下一篇,我要完成最後的步驟 - Step 5 飲食回饋的設定。


上一篇
13. 吃吃記帳 - Bot 的實踐:說明紀錄飲食的方式與設置提醒
系列文
用 No-code AI 工具打造產品「吃吃記帳」- 我的 PM 轉職 Side Project14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言